Measuring motion in two or more dimensions is extremely useful in numerous applications. Computer input devices such as mice are but one example. In particular, a computer mouse typically provides input to a computer based on the amount and direction of mouse motion over a work surface (e.g., a desk top). Many existing mice employ an imaging array for determining movement. As the mouse moves across the work surface, small overlapping work surface areas are imaged. Processing algorithms within the mouse firmware then compare these images (or frames). The relative motion of the work surface can then be calculated by comparing surface features common to overlapping portions of adjacent frames.
Imaging can be performed in various ways. One imaging method involves grazing illumination in which light from an LED strikes a surface at a relatively shallow angle. The LED light beam striking the surface at the relatively shallow angle is reflected back to a light sensor. Features on the surface generate shadows, and an image frame composed of such shadows can be compared with other image frames to calculate direction and amount of motion.
Another imaging method utilizes specular illumination. In this method, a highly focused LED or a coherent light source (e.g., a laser) strikes a surface at a less shallow or “deep” angle with respect to the surface being imaged.
Each of the above described techniques works better for certain types of surfaces. For example, a specular light source providing an incident light beam at a deep angle with respect to a surface usually provides better tracking images if the surface is glossy or highly reflective. However, specular-image tracking may not work as well if the surface is non-glossy or not highly reflective. Conversely, tracking based on images from a grazing illumination light source is generally more effective if the surface is not highly reflective and/or relatively rough.